home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Taifun
/
Taifun 101 (1989-08-15)(Ossowski, Stefan)(DE)(PD).zip
/
Taifun 101 (1989-08-15)(Ossowski, Stefan)(DE)(PD).adf
/
Diskey
/
DisKey.README
< prev
next >
Wrap
Text File
|
1989-04-20
|
28KB
|
691 lines
Angela Schmidt, Finkenweg 26, 7910 Neu-Ulm Burlafingen, GERMANY
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
********************************
*** ***
*** README zu DisKey 1.0 ***
*** ***
********************************
1) Was ist DisKey?
2) Warum DisKey?
3) Wie es zu DisKey kam:
4) Updates:
5) An alle Programmierer/innen
6) Die Anleitung
6.1) Allgemeines
6.2) Die Bedienung
6.3) Die Menüpunkte
7) Der MIST-VIRUS
8) Meine Adresse
1) Was ist DisKey?
==================
DisKey ist mein erstes größeres C-Programm - ein Diskettenmonitor. DisKey
arbeitet blockweise, ist also KEIN File-Monitor, bei denen man einen
Filenamen eingeben muss, und dieses dann editiert.
DisKey ist PUBLIC DOMAIN. Sie dürfen es also frei kopieren, vorausgesetzt,
Sie geben dieses Textfile mit weiter. Ich bitte darum, daß sich auch die
sog. Szene daran hält. Denn was soll denn jemand mit einem
Diskettenmonitor anfangen, zu dem er keine Anleitung hat? Ja, ich weiß,
daß es auch ohne Anleitung geht. Aber wenn man schon eine hat, so kann
man sie ja mit weitergeben!
Auf kommerziellen Disketten darf DisKey nur mit meinem schriftlichen
Einverständnis vertrieben werden!
2) Warum DisKey?
================
Ja, es gibt schon viele Diskettenmonitore. Aber gibt es auch schon genug
deutsche? Gibt es Diskettenmonitore, die eine Block in ASCII und
HEX-Darstellung nebeneinander auf den Bildschirm bekommen, ohne dabei
einen Interlace-Screen zu öffnen, sondern speichersparend auf der
Workbench arbeiten? DisKey kann dies alles. Dazu benötigt er aber einen
PAL-Amiga. Wenn er keinen solchen vorfindet, muß er wohl oder übel einen
eigenen Flacker-Screen öffnen, aber in Europa wird das wohl kein Problem
sein.
3) Wie es zu DisKey kam:
========================
Als ich mit der Programmierung von DisKey begonnen habe, wollte ich mich
nur einmal etwas näher mit C und dem trackdisk.device beschäfigen. Ich
hatte aber auch vor, das Programm an eine Zeitschrift zu schicken, um mein
Taschengeld eventuell etwas aufzubessern. Nach 3 Wochen war das Programm
allerdings schon über 2200 Zeilen lang. Das druckt keine Zeitschrift
mehr. Also entschloß ich mich, es zum PD-Programm zu machen, und hoffe
nun darauf, daß die zukünftigen DisKey-User meine Arbeit würdigen, und mir
vielleicht als Anerkennung etwas schicken. Das kann Geld sein, oder etwas
Selberprogrammiertes. Ich freue mich aber auch über Dinge, wie zum
Beispiel vergünstigte Eintrittskarten zu deutschen Computermessen, neue
Public Domain Disketten, und ähnliches. Wenn Sie DisKey häufig und gerne
benutzen, überlegen Sie sich doch bitte, ob Sie mir nicht etwas in der Art
zukommen lassen können. Ob ich in Zukunft meine größeren Programme in den
PD-Pool geben werde, hängt im Wesentlichen davon ab, ob für mich dabei
etwas herausspringt, denn ich bin noch Schülerin und werde dann studieren,
weswegen ich meist knapp bei Kasse bin.
4) Updates:
===========
Für DisKey wird es auf jeden Fall Updates geben, denn ich habe noch
einiges damit vor. Wenn Sie noch Anregungen oder gute
Verbesserungsvorschläge haben, so schreiben Sie mir einfach!
5) An alle Programmierer/innen:
===============================
Wie schon gesagt, habe ich noch einiges mir DisKey vor. Bis jetzt ist das
jedoch daran gescheitert, daß ich nicht weiß wie ich meine Ideen
realisieren soll, dann mir fehlt die passende Literatur. Wenn Sie eine
Antwort auf eine der nächsten Fragen haben, so schreiben Sie mir doch
bitte, wenn möglich mit einem kleine C-Source:
1) Wie kann ich bei einer Festplatte herausbekommen, über wieviele Köpfe,
Sektoren, Tracks usw. diese verfügt. Außerdem brauche ich noch das für
die Festplatte zuständige Device. Ich denke, daß das über die Device-List
läuft, aber wie und wo finde ich die, und wie ist sie aufgebaut?
2) Wenn ich mit "Format" eine Diskette formatiere, "merkt" das DOS, dass
sich da was getan hat, und kennt zum Beispiel die neue BAM. Wie kann ich
dem DOS klarmachen, daß sich auf der Diskette, die ich gerade bearbeite,
auch etwas Wesentliches geändert hat. Dies wird nämlich in dieser Version
nicht automatisch erkannt.
3) Solange DisKey eine Diskette bearbeitet, wirkt es störend, wenn ein
anderes Programm da hineinpfuscht. Wie kann ich es verhindern, daß das
DOS etwas auf meine Diskette schreibt? Die Lösung soll aber weiterhin
DISKINSERTEDs und DISKREMOVEDs melden!
6) D I E A N L E I T U N G:
==============================
Im folgenden werde ich eine kleine Anleitung für alle DisKey-User
zusammenstellen. Ich versuche einen möglichst guten Kompromiß zwischen
der Länge der Anleitung (soll ja möglichst schnell gelesen sein) und der
Information, die Sie für das Programm brauchen, zu finden.
6.1) Allgemeines:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Ich habe mich sehr bemüht, ein möglichst fehlerfreies Programm zu
schreiben. Ob mir das gelungen ist, werde ich wahrscheinlich erst
erfahren, nachdem es einer großen Zahl von Anwendern zugänglich gemacht
worden ist. Ich konnte jedoch bis jetzt nach etlichen Tests noch keine
Fehler feststellen. GURUs sind bei mir in der Testphase KEINE
aufgetreten. Auch sonst sind mir keine Fehler aufgefallen. Bei einem
Programm mit über 60 KB Source ist es jedoch natürlich nicht
auszuschließen, daß noch Fehler drin sind. Deswegen kann ich auch
keinerlei Haftung für eventuell auftretende Schäden übernehmen. Eines
kann ich jedoch guten Gewissens behaupten: Mein Programm ist auf jeden
Fall VIEL sicherer als so manche kommerzielle Programme. (Ich denke im
Moment an die erste Version eines ganz bestimmten
Textverarbeitungsprogramms, das sogar beim Textscrolling - einer ganz
normalen Anwendung - häufig abgestürzt ist.)
Noch etwas vorraus, damit Sie's gleich wissen: Mein Programm informiert
das DOS an keiner Stelle, daß sich auf der Diskette, die gerade bearbeitet
wird, etwas Wesentliches geändert haben könnte. Wenn Sie also auf der
Diskette etwas geändert haben, sollten Sie sie kurz aus dem Laufwerk
nehmen, nachdem Sie das Programm verlassen haben. Falls Sie das nicht
tun, kann das unter Umständen böse Folgen haben. Aber erschrecken Sie
nicht, es gibt genug andere Diskettenmonitore, die diese Marotte ebenfalls
haben. In einer höheren Version wird dieses Problem hoffentlich beseitigt
sein. (Ich hoffe, daß der Aufruf an die Programmierer/innen etwas
bringt!)
Ach ja, umgekehrt ist es das gleiche: Wenn das DOS etwas auf die Disk
schreibt, WÄHREND DisKey aktiv ist, "merkt" DisKey auch nichts davon. Im
Klartext heißt das, daß inzwischen benutzte Blöcke noch als "FREI"
angezeigt werden, oder bereits gelöschte noch als belegt. Auch beim
Auffinden des File- oder Directory-Headers könnte es Schwierigkeiten
geben. In so einem Fall ist auch wieder ein Diskettenwechsel angesagt,
damit DisKey die BAM, die HASH-Table und anderes nochmal einliest.
6.2) Die Bedienung:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Zum Editieren gibt es zwei Möglichkeiten: ASCII-Text und HEX-Zahlen.
Voreingestellt ist ASCII-Edit. Sie können durch einen Mausklick auf den
ASCII- bzw. HEX-Text zwischen den beiden Modi wählen. Der Cursor läßt
sich mit der Maus und mit den Cursortasten positionieren. Die
Cursortasten haben eine fest voreingestellte Geschwindigkeit (relativ
schnell, denn sonst wird die Sache leicht nervig, wenn man da mal an
gewisse Editoren denkt, o-wei...). Die Tastenwiederholungsrate der
übrigen Tasten wird aus den Preferences übernommen. Die Keymap ist genau
die, die Sie mit setmap eingestellt haben. Programme, die Ihre eigene
Keymap mit herumschleppen, oder die Rawcodes auswerten, finde ich absolut
NERVIG. Ach ja, String-Tasten (Tasten mit mehr als einem Buchstaben)
werden ignoriert.
Beim ASCII-Edit werden fast alle Codes angenommen. Wenn Sie also zum
Beispiel auf ESC drücken, so bekommen Sie Ihr ESC auch. Da der Code
unsichtbar ist, wird er zwar nur als Punkt dargestellt, aber im
HEX-Display sehen Sie: 1B! Der gewünschte Code. Natürlich werden auch
CTRL-Codes angenommen - kein Problem! So entfällt nämlich endlich der
lästige Wechsel zwischen ASCII und HEX - zum Beispiel wenn man irgendwo
Steuercodes einflicken will. Da RETURN nichts anderes ist, als CTRL-M,
wird es auch komplett in 0D (HEX) umgewandelt.
Beim HEX-Edit werden Ziffern und Buchstaben von a (A) bis f (F)
angenommen. Klar!
Jedes geänderte Zeichen wird übrigens ROT dargestellt. So haben Sie immer
einen schönen Überblick, was Sie schon alles herumgemurkst
(Entschuldigung...) haben!
In der Titelleiste sehen Sie stets die momentanen Koordinaten Ihres
Cursors in Dezimal- und Hexadezimaldarstellung. Außerdem wird angezeigt,
in welchem Langwort sich der Cursor gerade befindet. Also kein mühsames
Langwort- und Byteauszählen mehr! Falls die Darstellung einmal
verschwunden sein sollte (das passiert, wenn sie von einem anderen Fenster
überdeckt wurde), müssen Sie nur den Cursor einmal kurz bewegen, und -
schwupp - ist sie wieder da!
Wenn Sie das Programm gestartet haben, sehen Sie zwölf Befehlsgadgets. Zu
wenig? Na, dann drücken Sie doch mal die rechte Maustaste! Was? In der
Titelzeile rührt sich nichts? Nun, dann schauen Sie sich doch mal die
zwölf Gadgets an! Sehen etwas anders aus, oder? Durch einen weiteren
Klick mit der rechten Maustaste bekommen Sie wieder die alten Gadgets.
Ich fand diese Methode recht komfortabel, vielleicht ist sie etwas
gewöhnungsbedürftig, aber das sollte kein Problem sein.
"Gefährliche" Gadgets habe ich mit einer "Kindersicherung" versehen, die
sogar mich schon vor schlimmeren Folgen bewahrt hat. Bei diesen Gadgets
müssen Sie LANGE auf dem Mausknopf bleiben. So lange, bis im Display
rechts unten die Anzeige "Alles klar!" erscheint. Lassen Sie den
Mausknopf früher los, so wird der Befehl abgebrochen.
In diesem Display rechts unten erfahren Sie übrigens so einiges während
Ihrer Arbeit. Alle Meldungen, die nicht in einem eigenen Window
ausgegeben werden, erscheinen rechts unten.
Es wird zum Beispiel eine ins aktuelle Laufwerk neu eingelegte Diskette
gleich etwas näher betrachtet. Dabei wird auch der Bootblock auf folgende
Viren hin untersucht: BYTE BANDIT, SCA und Abkömmlinge, DASA, NORTH STAR
VIRUS, SYSTEM Z PROTECTOR und MIST-VIRUS (siehe unter 7). Dazu wird das
vierte Langwort eingelesen und mit den Langwörtern der Viren verglichen.
Stimmen sie überein, so wird eine entsprechende Meldung ausgegeben.
Besteht das Langwort aus Null-Bytes oder beginnt es mit "DOS", so wird der
Benutzer entwarnt, ansonsten kommt die Meldung "Kein Standard-Bootblock".
Ich möchte jedoch hier noch ganz eindringlich darauf hinweisen, daß diese
Lösung KEIN besonders guter Schutz gegen zukünftige Bootblockviren ist,
da ja nur vier Bytes überprüft werden. Es kann deswegen auch eine
Virus-Warnung kommen, obwohl gar keiner auf der Diskette ist. Dies könnte
z. B. bei einer Boot-Intro eintreten. Dann nämlich, wenn die ersten 4
Bytes der Boot-Intro mit einem der oben genannten Viren übereinstimmen.
Wenden Sie also den Install-Befehl des CLI nicht voreilig an, sondern
sehen Sie sich den Bootblock erst einmal in Ruhe an! Informieren Sie sich
auch unbedingt unter 7) über den MIST-VIRUS!
Wenn neue Viren auftauchen, können Sie mir ja schreiben, wie deren viertes
Langwort (gemeint ist das 4. Langwort des Bootblocks, das entspricht dem
ersten Langwort des Virus-Programms!) aussieht, und wie der Virus heißt.
Ein Bootblock-Ausdruck wäre mir auch sehr angenehm. Ich werde dann in der
nächsten Version eine entsprechende Warnung mit einbauen.
Nun noch kurz zu den restlichen zwei Zeilen im Feld rechts unten: Die
letzte Zeile zeigt immer den Namen der Diskette, die Sie gerade
bearbeiten, an. Die zweite Zeile enthält folgende Informationen:
???? steht jeweils für "unbekannt".
Diskettentyp (DOS-normale Diskette / KICK-Kickstart)
Blockstatus (USED-benutzt / FREI-nicht benutzt / KICK-Kickstart Diskette)
Blocktyp (ROOT / BOOT / BAM / DATA / HEADER / DIR / FILELIST / KICK )
ROOT: Block 880 einer Diskette
BOOT: Block 0 und 1 einer Diskette
BAM: Bit Allocation Map
DATA: Daten-Block
HEADER: File-Header-Block
DIR: User-Directory-Block
FILE-LIST: File-List-Block
KICK: Kickstart-Disketten haben keine besonderen Blöcke!
Links unten finden Sie auch etliche Gadgets. Hier können folgende Werte
eingestellt werden:
DRIVE: Laufwerk 0, 1, 2, oder 3.
BLOCK: Der zu bearbeitende Block. (0 bis 1759)
TRACK: Die Spur (0 bis 159). Nicht zu verwechseln mit:
CYL.: Der Zylinder (0 bis 79).
SEC.: Der Sektor (0 bis 10).
HEAD: Die Kopfnummer (0 oder 1).
Die Werte können durch einen Klick auf '+' und '-' verändert werden.
Natürlich lassen sie sich auch direkt über die Tastatur eingeben. Dazu
klickt man einfach auf das entsprechende Gadget, und schon kann man den
Wert eingeben. Hierzu können folgende Tasten verwendet werden:
0 bis 9 (ist ja klar!)
BACKSPACE (löscht das Zeichen links vom Cursor.)
ESC (macht alles rückgängig. Der augenblickliche - evt. schon editierte
- Block wird also NICHT durch Überschreiben gelöscht.)
RETURN (schließt die Eingabe ab.)
So, nun müssen Sie sich nur noch die Beschreibung zu den einzelnen
Menüpunkten zu Gemüte führen. Lassen Sie sich von einigen Fähigkeiten
überraschen! Falls Ihnen bei den Menüpunkten ein rotes Fenster (im
Interlace-Modus ist es aus optischen Gründen weiss!) über den Weg läuft,
kann man es übrigens entweder durch eine Leereingabe (falls eine Eingabe
verlangt wird) oder durch einen Mausklick verlassen.
Falls in dem Fenster eine Eingabe verlangt wird, können Sie mit ESC die
gesamte Eingabe wieder löschen, so daß Sie um etliche BACKSPACES
herumkommen, die Sie natürlich auch benutzen können. Manchmal
funktionieren bei der Eingabe alle Tasten, manchmal nur HEX-Zahlen,
manchmal auch nur Ziffern. Das kommt immer auf den einzelnen Fall drauf
an.
Falls Sie sich fragen, warum ich nicht die komfortablen String-Gadgets
verwendet habe: Meine Routine sperrt zum Beispiel bei HEX-Eingaben von
Anfang an ungültige Tasten, was mit String-Gadgets leider nicht möglich
ist. Darauf wollte ich aber nicht verzichten. Es ist übrigens gut
möglich, daß sich die Eingaberoutine in Zukunft noch etwas verbessert!
Nun aber endlich zu den Menüpunkten:
6.3) Die Menüpunkte:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Bitte behalten Sie bei der Benutzung der Menüpunkte immer die erste Zeile
im Kasten rechts unten im Auge. Oft erscheinen hier Fehlermeldungen,
Warnungen, und ähnliches.
LESEN:
¯¯¯¯¯¯
Wenn man einen Block geändert, aber noch nicht gespeichert hat, und dann
merkt, daß das nichts war, und mit dem Ausbessern nochmal von vorne
beginnen möchte, so klickt man einfach auf LESEN. Schwupp-di-wupp, der
Block ist wieder da, wie anno dazumale!
SCHREIBEN:
¯¯¯¯¯¯¯¯¯¯
Hier wird der Block auf Diskette zurückgeschrieben! Sicherheitsabfrage!
DRUCKEN:
¯¯¯¯¯¯¯¯
Der Block wird - ähnlich wie bei "Type opt h" ausgedruckt - vorrausgesetzt
natürlich, Sie haben einen Drucker!
MERKEN:
¯¯¯¯¯¯¯
Der Block wird im einem Zwischenspeicher abgelegt.
HOLEN:
¯¯¯¯¯¯
Der Block wird aus dem Zwischenspeicher zurückgeholt und überschreibt
damit den Block, der gerade editiert wird. Natürlich wird der
Zwischenspeicher NICHT auf Diskette geschrieben!
SUMME:
¯¯¯¯¯¯
Die meisten Blöcke verfügen über eine Prüfsumme. Nachdem man einen Block
aufgebessert hat, sollte man - bevor man ihn abspeichert - auf Summe
klicken. Hier sind viele Abfragen eingebaut:
KICKSTART: Eine Kickstart hat nur eine Prüfsumme, nämlich in Block 512.
Befindet man sich im Block 512 einer Kickstart, so werden nacheinander die
Blöcke 1 bis 512 eingelesen, und die somit errechnete Prüfsumme an die
entsprechende Stelle im Block 512 eingetragen. SCHREIBEN nicht vergessen!
BOOTBLOCK: Die Summe der Bootblöcke steht in Block 0. Befindet man sich
hier, so wird Block 1 auch noch eingelesen, und die Summe gebildet. Nur
wenn die Prüfsumme der Bootblöcke stimmt, versucht der Amiga von der
Diskette zu booten. Wenn jedoch die Summe stimmt, aber kein
entsprechendes Bootprogramm im Bootblock steht, dann passiert etwas, was
ich aus Faulheitsgründen noch nicht ausprobiert habe. Vermutlich aber ein
GURU.
ANDERE BLÖCKE: Auch hier wird die Prüfsumme eingetragen. Bei der BAM im
ersten Langwort, sonst im 6.
SUCHEN:
¯¯¯¯¯¯¯
Geben Sie an, ob Sie nach HEX- oder ASCII-Daten suchen wollen. Die
entsprechenden Daten werden natürlich auch noch benötigt, ebenso wie
Start- und Endblock. Dann beginnt die Sucherei. Ein Abbruch ist
jederzeit durch einen Mausklick ins rote Fenster möglich. Es wird
übrigens zwischen Groß- und Kleinschrift unterschieden. Sie müssen also
schon genau wissen, was Sie wollen!
Wenn etwas gefunden wurde, Sie aber gerne noch weitersuchen möchten,
klicken Sie LANGE auf Suchen. So lange, bis die Meldung "Suche nach:
xxx" erscheint. Dann lassen Sie den Mausknopf los, damit mit der Sucherei
begonnen werden kann.
FORMAT:
¯¯¯¯¯¯¯
Start- und Enttrack (Track, nicht Zylinder!) angeben. Dann wird
formatiert. Jedoch ohne VERIFY! Abbruch durch Klick ins rote Fenster!
REFORMAT:
¯¯¯¯¯¯¯¯¯
Läuft wie FORMAT, nur gaaaanz anders! Bevor der Track formatiert wird,
wird dieser erst einmal eingelesen. Beim Formatieren werden die Daten,
die eben eingelesen wurden, wieder auf Diskette geschrieben. Als "Bonbon"
dürfen Sie die Lese- und Formatierversuche selber angeben. Sie müssen nur
zwischen 1 und 10 liegen. Scheitern alle Leseversuche, wird REFORMAT
abgebrochen.
INFO:
¯¯¯¯¯
Hier habe ich mich verewigt. Außerdem erfahren Sie noch etwas über die
eingelegte Diskette.
INFO =>:
¯¯¯¯¯¯¯¯
Klicken Sie ein Langwort an. Wenn der Wert des Langworts irgendwo
zwischen 0 und 1759 liegt, wird dieses als Zeiger auf einen Block
interpretiert, und Sie erhalten einige Angaben über diesen Block. Ein
Klick in den Bereich der Befehlsgadgets erbringt Ihnen Informationen über
den aktuellen Block. Dabei wird aber nur berücksichtigt, was bereits auf
Diskette steht - die Sachen, die Sie editiert haben, werden also
ignoriert! Falls Sie in einen ungültigen Bereich klicken, wird eine
entsprechende Fehlermeldung ausgegeben.
ENDE:
¯¯¯¯¯
Werden Sie nur gaaanz selten brauchen, deswegen ist eine
Sicherheitsabfrage unbedingt nötig, denn wer weiß, ob Sie sich nicht
"verklickt" haben...
SPRINGEN:
¯¯¯¯¯¯¯¯¯
Ein Klick auf ein Langwort - und schon sind Sie im gewünschten Block -
sofern der Wert des Langworts irgendwo zwischen 0 und 1759 liegt.
FÜLLEN:
¯¯¯¯¯¯¯
Wenn Sie den ganzen Block mit irgendwas (ASCII oder HEX) füllen wollen,
dann ist dieser Menüpunkt der Richtige für Sie!
=> FREI:
¯¯¯¯¯¯¯¯
Der Block, den Sie gerade vor sich haben, wird in der BAM als FREI
markiert UND GLEICH ABGESPEICHERT!
=> USED:
¯¯¯¯¯¯¯¯
Wie FREI, nur umgekehrt!
FILEHEAD:
¯¯¯¯¯¯¯¯¯
Sie wollen zu einem bestimmten FILEHEAD oder DIRECTORY? Dann geben Sie
hier einfach den kompletten Pfadnamen ab dem ROOT (Hauptverzeichnis) ein.
Groß-/Kleinschreibung spielt keine Rolle!
INITDISK:
¯¯¯¯¯¯¯¯¯
/ Sehr GEFÄHRLICH, deswegen erfolgt auch eine Sicherheitsabfrage.
/ Dieser Befehl schreibt den BOOTBLOCK, den ROOTBLOCK, und die BAM
/ _ neu. So können Sie eine Diskette in sekundenschnelle komplett
¯¯¯¯/ löschen. Die Datenblöcke werden natürlich nicht gelöscht, aber
/ dadurch, daß ALLE Zeiger auf Datenblöcke, Directoryblöcke usw.
\/ gelöscht werden, und in der BAM als frei eingetragen werden,
¯¯ haben Sie nach dieser Prozedur eine praktisch leere Diskette vor
sich. Dieser Befehl muß aber angewendet werden, wenn mittels
FORMAT der ROOT-Block überschrieben wurde, sonst können Sie die
Diskette vergessen!
PRÜFEN:
¯¯¯¯¯¯¯
Start- und Endtrack eingeben, und schon werden all diese Tracks
eingelesen. Fehlermeldungen werden rechts unten ausgegeben. Am Ende des
Vorgangs erfahren Sie, wieviel Fehler aufgedeckt wurden. Hier werden aber
nur Trackdisk-Fehler gemeldet. Abbruch durch Klick ins rote Fenster!
>>>===================================================================<<<
>>> HIER BEGINNEN EINIGE RECHT UNSCHEINBARE BEFEHLE, DIE ES JEDOCH IN <<<
>>> SICH HABEN! LASSEN SIE SICH ÜBERRASCHEN! <<<
>>>===================================================================<<<
RAM: AUF:
¯¯¯¯¯¯¯¯¯
Es wird ein neues File auf der RAM-Disk geöffnet. Hier können Sie alle
Daten ablegen, um sie sich später in aller Ruhe ansehen zu können. Falls
bereits eine RAM-Datei geöffnet war, wird diese geschlossen, und eine neue
Datei geöffnet. Die Dateien heißen RAM:DisKey0, RAM:DisKey1, usw. Bei
jedem DisKey-Start wird mit dem Zählen neu begonnen, und eventuell
vorhandene "DisKey#?"-Dateien überschrieben.
ALLES:
¯¯¯¯¯¯
Der gesamte Block (512 Bytes) wird in die (hoffentlich) zuvor geöffnete
RAM-Datei abgelegt.
DATEN:
¯¯¯¯¯¯
Funktioniert nur, wenn Sie sich gerade in einem Daten-Block befinden. Es
werden dann alle DATEN in der RAM-Disk-Datei abgelegt. Meist sind dies
488 Bytes, manchmal auch weniger!
RAM: ZU
¯¯¯¯¯¯¯
Die RAM-Datei wird wieder geschlossen. Dies geschieht auch automatisch
bei folgenden Tätigkeiten:
1) RAM: AUF (Die alte Datei wird geschlossen, eine neue geöffnet)
2) ENDE
3) => RAM: (Wie RAM: AUF)
Man könnte sich diesen Menüpunkt also fast sparen. Der Ordnung halber
habe ich ihn aber dazugefügt. Falls ich den Platz für das Gadget in
späteren Versionen benötige, muß dieser Befehl evt. weichen.
=> RAM:
¯¯¯¯¯¯¯
Dies ist meiner Meinung nach ein SEHR nützlicher Befehl, um einige Dateien
zu retten. Hatten Sie schon einmal den "DISK CORRUPT"-Requester? Oder
einen Read-Write-Error, ohne daß die Diskette einen Hard-Error hatte.
Wenn PRÜFEN keine Fehler anzeigt, ist es gut möglich, daß entsprechende
Dateien komplett gerettet werden können. Die geretteten Dateien werden
dann in der RAM-Disk abgelegt. (Siehe RAM: AUF!)
Nun aber zur Vorgehensweise beim Retten von Dateien. Es gibt hier
grundsätzlich zwei Möglichkeiten:
1) Sie befinden sich in einem Datenblock. Ein Klick auf "=> RAM" bewirkt
hier, daß sich das Programm so weit wie möglich vorhangelt, bis es an dem
letzten Block ankommt, oder ein Fehler ein Weiterkommen verhindert. Oft
ist aber nur der File-Header zerstört, der dann für oben genannte
Requester sorgt. In diesem Fall müssen Sie also nur den ersten Datenblock
aufsuchen, und dann das => RAM:-Gadget anklicken. Wenn Sie sich im ersten
Block der Datei befinden, wird die gesamte Datei in die RAM-Datei
geschrieben. Bei einem höheren Datenblock wird nur der Rest der Datei (ab
jenem Datenblock) übernommen.
WIE KOMME ICH IN DEN ERSTEN DATENBLOCK EINER DATEI?
Dazu gibt es "FILEHEAD"! Sie geben den Dateinamen ein, und FILEHEAD
versucht den HEADER ausfindig zu machen. Im fünften Langwort des HEADERS
befindet sich ein Zeiger auf den ersten Block der Datei. Prüfen Sie aber
zunächst einmal, ob dieser Zeiger noch stimmt. "INFO =>" und fünftes
Langwort anklicken. Es müßte sich also um den ersten Datenblock der
gewünschten Datei handeln. Ja? Dann SPRINGEN Sie hinein! Nein? Dann
probieren Sie's mal mit dem 78. Langwort (HEX: 134). Vorgehensweise wie
oben! Falls das auch nicht klappt, probieren Sie einfach einmal, ob nicht
der nächste Block der erste Datenblock der Datei ist. Das dritte Langwort
dieses Blocks müßte 00000001 (laufende Blocknummer der Datei) sein, das
zweite Langwort sollte auf den Fileheader zeigen (mit INFO =>
ausprobieren). Wenn das immer noch nicht geklappt hat, Sie aber einige
Bytes vom Anfang der Datei kennen, können Sie es noch mit SUCHEN
probieren. Sonst weiß ich auch keinen Rat mehr.
2) Wenn Sie sich in einem Fileheader (z. B. mittels FILEHEAD) befinden,
ist auch meist noch einiges zu machen. Hier sind nämlich alle Zeiger auf
die Datenblöcke nochmal aufgeführt. Falls nun mitten im Repariervorgang
ein Fehler beim Lesen eines Datenblocks auftritt, wird eine neue Datei
begonnen, die DisKey(n).teil1 genannt wird. So werden auch Harderrors
übergangen. Die Daten, die in den Harderrortracks stehen/standen, können
leider nicht mehr gerettet werden, dafür aber alle anderen. Bei
Programmen hilft das zwar reichlich wenig, aber um Source-Codes oder
Text-Dateien teilweise zu retten, ist diese Methode ganz vernünftig.
Treten mehrere solche Fehler auf, werden entsprechend viele
".teil(x)"-Dateien gebildet. Jedesmal, wenn ein Block gelesen werden
soll, und das scheitert, wird die Meldung "Beginne neues Ram:-File"
ausgegeben. Wundern Sie sich jedoch nicht, wenn später viel weniger
Dateien in der RAM:-Disk stehen. Das liegt daran, daß Dateien, die leer
sind, gleich wieder überschrieben werden. Wenn nun einige Lesefehler
HINTEREINANDER auftreten, wird jedesmal eine neue RAM:-Datei geöffnet. Da
aber auch der nächste Leseversuch scheitert, bleibt die vorige Datei leer,
und wird deswegen gleich wieder überschrieben.
7) Der MIST-VIRUS
=================
Ja, hier haben wir mal wieder einen neuen Virus, dem ich Anfang April '89
zum ersten Mal begegnet bin. Da dieser Virus ein riesen Mist ist, habe
ich ihn einfach einmal MIST-VIRUS genannt. Den richtigen Namen kenne ich
nicht! Ich habe noch nirgendwo etwas über ihn gelesen, und ihn auch nicht
groß ausprobiert, denn dazu ist mir meine Zeit zu schade. Ich weiß also
nicht, was er anrichten kann. Daß er aber zu der ganz gemeinen Sorte
gehört, ist auf jeden Fall klar! Er versteckt sich im Bootblock, und wird
somit beim Booten aktiv. Ja, er versteckt sich wirklich, denn wenn er
erst einmal aktiv ist, hintergeht er irgendwie das trackdisk.device: wenn
man sich den Bootblock einer Diskette mit einem Monitor ansehen will, so
sieht er ganz normal aus - wie ein Install-Bootblock. Bei aktivem
MIST-VIRUS ist es DisKey (und auch anderen Diskettenmonitoren) unmöglich,
zwischen dem MIST-VIRUS und einem Install-Bootblock zu unterscheiden.
Auch Sie können in Block 0/1 keinen Unterschied sehen. Deswegen kommt bei
einem Install-Bootblock immer die Meldung Install-Bootblock o. MIST
aktiv! Der MIST-VIRUS verschlüsselt seinen Code - wahrscheinlich mit
logischen Verknüpfungen. Somit ist er schlecht zu erkennen. Einige Bytes
scheinen jedoch immer gleich zu bleiben, und daran versucht DisKey den
Virus zu erkennen. Es kommt dann eine entsprechende Meldung. Aber
VORSICHT: Die Meldung kann nur kommen, wenn der Virus nicht aktiv ist,
denn sonst wird ja das trackdisk.device hintergangen! (TIP: ViCheck von
Ralph Babel erkennt den Virus im Speicher, allerdings ohne Ausgabe eines
Namens - Ein Dankeschön für das Tool!)
Zum Schluß noch, wie der Anfang des Virus' aussieht (xx = unterschiedlich)
1. LW: 444F5300
2. LW: xxxxxxxx
3. LW: 00000370
4. LW: 70xx6122
5. LW: 4EAEFFA0
6. LW: 4A80670A
7. LW: 20402068
8. LW: 00167000
9. LW: 4E7570FF
10. LW: 60FA646E
Bis zum 19. LW sind die Langworte gleich, dann nicht mehr! (Beim 20. LW
nur noch die ersten beiden Bytes!)
So, ich hoffe, daß Ihnen mein Programm gefällt, und daß Sie dann auch
mich, die Programmiererin nicht vergessen.
>>>>>>><<<<<<<
>>> Angela <<<
>>>>>>><<<<<<<
8) Meine Adresse:
=================
Angela Schmidt
Finkenweg 26
7910 Neu-Ulm Burlafingen
GERMANY
Tel: 0731 / 712316